package com.xydtech.ecard.merchant.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xydtech.common.annotation.Excel;
import com.xydtech.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.util.Date;

/**
 * 电子名片商户拜访记录对象 ecard_merchant_visit_info
 *
 * @author xydtech
 * @date 2023-08-01
 */
public class EcardMerchantVisitInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 商户ID */
    //@Excel(name = "商户ID")
    private Long merchantId;

    /** 创建人ID */
    //@Excel(name = "创建人ID")
    private Long creatorId;

    /** 门头名称 */
    @Excel(name = "门头名称")
    private String handName;
    /** 营销经理 */
    @Excel(name = "营销经理")
    private String userName;

    /** 拜访时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "拜访时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationTime;

    /** 坐标 */
    @Excel(name = "坐标")
    private String coordinate;

    /** 地图地址 */
    @Excel(name = "地图地址")
    private String mapAddress;

    /** 拜访图片 */
    //@Excel(name = "拜访图片")
    private String visitPic;

    /**
     * 营销结果
     */
    @Excel(name = "营销结果",readConverterExp = "1=成功,2=失败")
    private String ecardSemResult;

    /** 商户新办业务（多条记录逗号隔开） */
    @Excel(name = "商户新办业务")
    private String newBusiness;

    /**
     * 失败原因
     */
    @Excel(name = "失败原因")
    private String failReason;

    /** 下次回访提醒日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下次回访提醒日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reminderDate;

    /**
     * 有无预约业务
     */
    @Excel(name = "有无预约业务",readConverterExp = "1=有,2=无")
    private String hasReservationBusi;
    /**
     * 预约业务类型
     */
    @Excel(name = "预约业务类型")
    private String reservationBusiType;

    /**
     * 预约日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date appointmentDate;

    /** 拜访状态 */
    @Excel(name = "拜访状态", dictType = "ecard_merchant_visit_sts")
    private Integer state;

    @Excel(name = "备注说明")
    private String remark;

    /**
     * 商户类型：1-个人，2-商户，3-企业，4-新型农业主体
     */
    private String merchantType;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setMerchantId(Long merchantId)
    {
        this.merchantId = merchantId;
    }

    public Long getMerchantId()
    {
        return merchantId;
    }
    public void setCreatorId(Long creatorId)
    {
        this.creatorId = creatorId;
    }

    public Long getCreatorId()
    {
        return creatorId;
    }
    public void setCoordinate(String coordinate)
    {
        this.coordinate = coordinate;
    }

    public String getCoordinate()
    {
        return coordinate;
    }
    public void setVisitPic(String visitPic)
    {
        this.visitPic = visitPic;
    }

    public String getVisitPic()
    {
        return visitPic;
    }
    public void setNewBusiness(String newBusiness)
    {
        this.newBusiness = newBusiness;
    }

    public String getNewBusiness()
    {
        return newBusiness;
    }
    public void setCreationTime(Date creationTime)
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime()
    {
        return creationTime;
    }
    public void setReminderDate(Date reminderDate)
    {
        this.reminderDate = reminderDate;
    }

    public Date getReminderDate()
    {
        return reminderDate;
    }
    public void setMapAddress(String mapAddress)
    {
        this.mapAddress = mapAddress;
    }

    public String getMapAddress()
    {
        return mapAddress;
    }

    public String getHandName() {
        return handName;
    }

    public void setHandName(String handName) {
        this.handName = handName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getEcardSemResult() {
        return ecardSemResult;
    }

    public void setEcardSemResult(String ecardSemResult) {
        this.ecardSemResult = ecardSemResult;
    }

    public String getFailReason() {
        return failReason;
    }

    public void setFailReason(String failReason) {
        this.failReason = failReason;
    }

    public String getHasReservationBusi() {
        return hasReservationBusi;
    }

    public void setHasReservationBusi(String hasReservationBusi) {
        this.hasReservationBusi = hasReservationBusi;
    }

    public String getReservationBusiType() {
        return reservationBusiType;
    }

    public void setReservationBusiType(String reservationBusiType) {
        this.reservationBusiType = reservationBusiType;
    }

    public Date getAppointmentDate() {
        return appointmentDate;
    }

    public void setAppointmentDate(Date appointmentDate) {
        this.appointmentDate = appointmentDate;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer visitState) {
        this.state = visitState;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getMerchantType() {
        return merchantType;
    }

    public void setMerchantType(String merchantType) {
        this.merchantType = merchantType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("id", id)
                .append("merchantId", merchantId)
                .append("creatorId", creatorId)
                .append("coordinate", coordinate)
                .append("visitPic", visitPic)
                .append("ecardSemResult", ecardSemResult)
                .append("newBusiness", newBusiness)
                .append("failReason", failReason)
                .append("hasReservationBusi", hasReservationBusi)
                .append("reservationBusiType", reservationBusiType)
                .append("appointmentDate", appointmentDate)
                .append("creationTime", creationTime)
                .append("reminderDate", reminderDate)
                .append("mapAddress", mapAddress)
                .append("handName", handName)
                .append("userName", userName)
                .append("merchantType", merchantType)
                .append("state", state)
                .toString();
    }
}
